from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
import time

pool = ThreadPoolExecutor(5)
"""
池子造出来后 里面固定存在五个线程
这五个线程不会重复出现创建和销毁的过程

池子的使用非常简单
你只需要将需要做的任务往池子中提交即可 自动会有人来服务你
"""


def task(n):
    print(n)
    time.sleep(2)
    return ('返回结果', n)


# pool.submit(task, 1)  # 朝池子中提交任务  异步提交
# print('主')
t_list = list()

for i in range(20):
    res = pool.submit(task, i)
    # print(res.result())  # 会阻塞  变成同步提交
    t_list.append(res)
# 等待线程池中所有的任务执行完毕之后再继续往下执行
pool.shutdown()  # 关闭线程池 等待线程池中所有的任务运行完毕

for t in t_list:
    print('>>>:', t.result())  # 有序的
"""
程序由并发变成了串行
"""
